Code coverage report for src/template-registry-entry.js

Statements: 47.46% (28 / 59)      Branches: 31.25% (5 / 16)      Functions: 46.67% (7 / 15)      Lines: 37.21% (16 / 43)      Ignored: none     

All files » src/ » template-registry-entry.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 941     1   2   1   1   1     1             1   1 1                   1                                                               1       1       1                       1     1        
System.register(['aurelia-path'], function (_export) {
  'use strict';
 
  var relativeToFile, TemplateDependency, TemplateRegistryEntry;
 
  var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; Iif ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { Eif (protoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
 
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
 
  return {
    setters: [function (_aureliaPath) {
      relativeToFile = _aureliaPath.relativeToFile;
    }],
    execute: function () {
      TemplateDependency = function TemplateDependency(src, name) {
        _classCallCheck(this, TemplateDependency);
 
        this.src = src;
        this.name = name;
      };
 
      _export('TemplateDependency', TemplateDependency);
 
      TemplateRegistryEntry = (function () {
        function TemplateRegistryEntry(id) {
          _classCallCheck(this, TemplateRegistryEntry);
 
          this.id = id;
          this.template = null;
          this.dependencies = null;
          this.resources = null;
          this.factory = null;
        }
 
        TemplateRegistryEntry.prototype.setTemplate = function setTemplate(template) {
          var id = this.id,
              useResources,
              i,
              ii,
              current,
              src;
 
          this.template = template;
          useResources = template.content.querySelectorAll('require');
          this.dependencies = new Array(useResources.length);
 
          if (useResources.length === 0) {
            return;
          }
 
          for (i = 0, ii = useResources.length; i < ii; ++i) {
            current = useResources[i];
            src = current.getAttribute('from');
 
            if (!src) {
              throw new Error('<require> element in ' + this.id + ' has no "from" attribute.');
            }
 
            this.dependencies[i] = new TemplateDependency(relativeToFile(src, id), current.getAttribute('as'));
 
            if (current.parentNode) {
              current.parentNode.removeChild(current);
            }
          }
        };
 
        TemplateRegistryEntry.prototype.setResources = function setResources(resources) {
          this.resources = resources;
        };
 
        TemplateRegistryEntry.prototype.setFactory = function setFactory(factory) {
          this.factory = factory;
        };
 
        _createClass(TemplateRegistryEntry, [{
          key: 'templateIsLoaded',
          get: function () {
            return this.template !== null;
          }
        }, {
          key: 'isReady',
          get: function () {
            return this.factory !== null;
          }
        }]);
 
        return TemplateRegistryEntry;
      })();
 
      _export('TemplateRegistryEntry', TemplateRegistryEntry);
    }
  };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2xvYWRlci9zcmMvdGVtcGxhdGUtcmVnaXN0cnktZW50cnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O3NCQUVhLGtCQUFrQixFQU9sQixxQkFBcUI7Ozs7Ozs7O29DQVQxQixjQUFjOzs7QUFFVCx3QkFBa0IsR0FDbEIsU0FEQSxrQkFBa0IsQ0FDakIsR0FBRyxFQUFFLElBQUksRUFBQzs4QkFEWCxrQkFBa0I7O0FBRTNCLFlBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2YsWUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7T0FDbEI7O29DQUpVLGtCQUFrQjs7QUFPbEIsMkJBQXFCO0FBQ3JCLGlCQURBLHFCQUFxQixDQUNwQixFQUFFLEVBQUM7Z0NBREoscUJBQXFCOztBQUU5QixjQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNiLGNBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ3JCLGNBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0FBQ3pCLGNBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3RCLGNBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCOztBQVBVLDZCQUFxQixXQWlCaEMsV0FBVyxHQUFBLHFCQUFDLFFBQVEsRUFBQztBQUNuQixjQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRTtjQUNaLFlBQVk7Y0FBRSxDQUFDO2NBQUUsRUFBRTtjQUFFLE9BQU87Y0FBRSxHQUFHLENBQUM7O0FBRXRDLGNBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLHNCQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM1RCxjQUFJLENBQUMsWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7QUFFbkQsY0FBRyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBQztBQUMzQixtQkFBTztXQUNSOztBQUVELGVBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO0FBQy9DLG1CQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLGVBQUcsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztBQUVuQyxnQkFBRyxDQUFDLEdBQUcsRUFBQztBQUNOLG9CQUFNLElBQUksS0FBSywyQkFBeUIsSUFBSSxDQUFDLEVBQUUsK0JBQTRCLENBQUM7YUFDN0U7O0FBRUQsZ0JBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FDM0MsY0FBYyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFDdkIsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FDM0IsQ0FBQzs7QUFFRixnQkFBRyxPQUFPLENBQUMsVUFBVSxFQUFDO0FBQ3BCLHFCQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN6QztXQUNGO1NBQ0Y7O0FBOUNVLDZCQUFxQixXQWdEaEMsWUFBWSxHQUFBLHNCQUFDLFNBQVMsRUFBQztBQUNyQixjQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUM1Qjs7QUFsRFUsNkJBQXFCLFdBb0RoQyxVQUFVLEdBQUEsb0JBQUMsT0FBTyxFQUFDO0FBQ2pCLGNBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQ3hCOztxQkF0RFUscUJBQXFCOztlQVNaLFlBQUU7QUFDcEIsbUJBQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7V0FDL0I7OztlQUVVLFlBQUU7QUFDWCxtQkFBTyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQztXQUM5Qjs7O2VBZlUscUJBQXFCOzs7dUNBQXJCLHFCQUFxQiIsImZpbGUiOiIvVXNlcnMvRWlzZW5iZXJnRWZmZWN0L0RvY3VtZW50cy9HaXRIdWIvVGhlIER1cmFuZGFsIFByb2plY3QvYXVyZWxpYS9sb2FkZXIvc3JjL3RlbXBsYXRlLXJlZ2lzdHJ5LWVudHJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtyZWxhdGl2ZVRvRmlsZX0gZnJvbSAnYXVyZWxpYS1wYXRoJztcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRGVwZW5kZW5jeSB7XG4gIGNvbnN0cnVjdG9yKHNyYywgbmFtZSl7XG4gICAgdGhpcy5zcmMgPSBzcmM7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVSZWdpc3RyeUVudHJ5IHtcbiAgY29uc3RydWN0b3IoaWQpe1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLnRlbXBsYXRlID0gbnVsbDtcbiAgICB0aGlzLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSBudWxsO1xuICAgIHRoaXMuZmFjdG9yeSA9IG51bGw7XG4gIH1cblxuICBnZXQgdGVtcGxhdGVJc0xvYWRlZCgpe1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlICE9PSBudWxsO1xuICB9XG5cbiAgZ2V0IGlzUmVhZHkoKXtcbiAgICByZXR1cm4gdGhpcy5mYWN0b3J5ICE9PSBudWxsO1xuICB9XG5cbiAgc2V0VGVtcGxhdGUodGVtcGxhdGUpe1xuICAgIHZhciBpZCA9IHRoaXMuaWQsXG4gICAgICAgIHVzZVJlc291cmNlcywgaSwgaWksIGN1cnJlbnQsIHNyYztcblxuICAgIHRoaXMudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICB1c2VSZXNvdXJjZXMgPSB0ZW1wbGF0ZS5jb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3JlcXVpcmUnKTtcbiAgICB0aGlzLmRlcGVuZGVuY2llcyA9IG5ldyBBcnJheSh1c2VSZXNvdXJjZXMubGVuZ3RoKTtcblxuICAgIGlmKHVzZVJlc291cmNlcy5sZW5ndGggPT09IDApe1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvcihpID0gMCwgaWkgPSB1c2VSZXNvdXJjZXMubGVuZ3RoOyBpIDwgaWk7ICsraSl7XG4gICAgICBjdXJyZW50ID0gdXNlUmVzb3VyY2VzW2ldO1xuICAgICAgc3JjID0gY3VycmVudC5nZXRBdHRyaWJ1dGUoJ2Zyb20nKTtcblxuICAgICAgaWYoIXNyYyl7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgPHJlcXVpcmU+IGVsZW1lbnQgaW4gJHt0aGlzLmlkfSBoYXMgbm8gXCJmcm9tXCIgYXR0cmlidXRlLmApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRlcGVuZGVuY2llc1tpXSA9IG5ldyBUZW1wbGF0ZURlcGVuZGVuY3koXG4gICAgICAgIHJlbGF0aXZlVG9GaWxlKHNyYywgaWQpLFxuICAgICAgICBjdXJyZW50LmdldEF0dHJpYnV0ZSgnYXMnKVxuICAgICAgKTtcblxuICAgICAgaWYoY3VycmVudC5wYXJlbnROb2RlKXtcbiAgICAgICAgY3VycmVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFJlc291cmNlcyhyZXNvdXJjZXMpe1xuICAgIHRoaXMucmVzb3VyY2VzID0gcmVzb3VyY2VzO1xuICB9XG5cbiAgc2V0RmFjdG9yeShmYWN0b3J5KXtcbiAgICB0aGlzLmZhY3RvcnkgPSBmYWN0b3J5O1xuICB9XG59XG4iXX0=